$(function(){
	// 初始化面板，注入下拉框数据
	initPanel();
	// 初始化表单验证
//	validateForm();
	// 为提交按钮和重置按钮绑定时间
	bindBtnListener();
});

// 第一次打开用户管理页面的时候，初始化下拉框数据
function initPanel() {
	// 将下拉框委托给jqueryui
	//$('select').combobox();
	$("#editdiaryBtn").button();
	$("#editdiaryBtnCancel").button();	
	// 为添加按钮绑定监听
	//$( "#searchUserBtn" ).click(searchUserByCond);
	
	// 访问数据库，获取所有区域和用户组记录，用以生成下拉框
	$.ajax({ //一个Ajax过程 
		type: "get", //以get方式与后台沟通 
		url : contextPath+'/resource/getEditDiary.control', //访问action，抓取用户查询条件基础数据 
		dataType:'json',//返回的值以 JSON方式 解释 
		data: {"diaryid": window.editdiaryid},
		success: getDiarySearchCondSucc,
		error:getDiarySearchCondError
	});
}

// 将数据库返回的数据注入到下拉框中
function getDiarySearchCondSucc(json) {
	var diaryId = json.diary.id; // 待编辑的用户id
	window.editdiaryid = diaryId;
//	var languageFlag = json.diary.languageFlag; // 用户语言
//	var isuse = json.diary.isUse; // 是否禁用
		

	// 填充文本框数据
	$("#diarynameTxt").val(json.diary.username);
	$("#realnameTxt").val(json.diary.name);
	$("#contentTxt").val(json.diary.content);
	// 设置语言栏下拉框
//	$("#languageBox").val(languageFlag);
}

// 查询数据失败
function getDiarySearchCondError() {
	// TODO
}

// 表单验证
function validateForm() {
	// 字符验证       
	jQuery.validator.addMethod("stringCheck", function(value, element) {
		var verify="[^`~!@#$%^&*()_+=\|\\\][\]\{\}:;\"'\,.<>?~！@#￥%]";
		for (var i = 0; i < verify.length; i ++) {
			if (value.indexOf(verify[i]) >= 0) {
				return false;
			}
		}
		for (var j = 0; j < value.length; j ++) {
			if (value.charCodeAt(j) >= 65281 && value.charCodeAt(j) <= 65373) {
				return false;
			}
		}
	    return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);       
	}, usernameVerifyInputError);
	
	// 中文字两个字节       
	jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {       
	    var length = value.length;       
	    for(var i = 0; i < value.length; i++){
	        if(value.charCodeAt(i) > 127){
	        length++;
	        }
	    }
	    return this.optional(element) || ( length >= param[0] && length <= param[1] );       
	}, userInputRangeError);
	
	// 电话号码验证       
	jQuery.validator.addMethod("phoneCheck", function(value, element) {
		var exp = /^[-,();0-9]*$/;
	    return this.optional(element) || exp.test(value);
	}, userPhoneNumError);
	
	// 有效期验证       
	jQuery.validator.addMethod("validCheck", function(value, element) {
		var validDay = parseInt(value);
	    return this.optional(element) || validDay > 0;
	}, userValidDateError);
	
	jQuery.validator.addMethod("notEqual", function(value, element, param) {
		  return this.optional(element) || value != param;
	}, "Please specify a different (non-default) value");
	
	//开始验证   
	$("#editDiaryForm").validate({
		/* 元素获得焦点后，清楚错误信息 */
		focusCleanup:true,
		/* 设置验证规则 */
		rules: {
			username: {
				required: true,   
				stringCheck:true,
				byteRangeLength:[6,30],
				remote: {
					url: contextPath+'/resource/verifyDiary.control',
					type: "post",               //数据发送方式
					dataType: "json",           //接受数据格式 
					data: {userid : window.edituserid, username: function() { return $("#usernameTxt").val();}}	
				}
			},
			phone: {
				maxlength: 20,
				phoneCheck: true
			},
			email: {
				maxlength: 60,
				email: true
			},
			realname: {
				maxlength: 30
			},
			valid: {
				number: true,
				validCheck: true
			},
			usergroup: {
				required: true,
				notEqual: "-1"
			},
			regiongroup: {
				required: true,
				notEqual: "-1"
			},
			language: {
				required: true,
				notEqual: "-1"
			},
			isuse: {
				required: true,
				notEqual: "-1"
			}
		},

		/* 设置错误信息 */
		messages: {
			username: {
				required: usernameEmptyError,   
				stringCheck: usernameVerifyInputError,
				byteRangeLength: userInputRangeError,
				remote: repeatUsernameError
			},
			realname: {
				maxlength: "最大长度"
			},
			content: {
				maxlength: "最大长度"
			},
//			language: {
//				required: userEmptyLanguageError,
//				notEqual: userEmptyLanguageError
//			},
		},   
     
		/* 设置验证触发事件 */  
		focusInvalid: false,   
		onkeyup: false,
		
		/* 设置错误信息提示DOM */  
		errorPlacement: function(error, element) {
			$("#editDiaryError").html(error);  
		}
	});
	
}

// 向服务器提交数据，添加新用户
function bindBtnListener() {
	// 创建新用户按钮
	$("#editdiaryBtn").click(function(event){
		event.preventDefault();
		var result = $("#editDiaryForm").valid();
		if (!result) {
			return;
		}
		$.post(contextPath+"/resource/editDiary.control",
				{
			'diaryid': window.editdiaryid,/* 用户名 */
			'diaryname': function() { return $("#diarynameTxt").val();/* 用户名 */},
			'realname': function() { return $("#realnameTxt").val();/*用户真实姓名*/},
			'content': function() { return $("#contentTxt").val();/*用户组id*/},
			'language': function() { return $("#languageBox").val();/*语言*/}
				},
		function (returnValue) {
			 if (returnValue) {
				 alert("edit success");
			 } else {
				 alert("edit fail");
			 }
		}	
				
				);
//		$.ajax({ 
//			type: "get", 
//			url : contextPath+'/resource/editDiary.control', 
//			dataType:'json',
//			data: {
//				'diaryid': window.editdiaryid,/* 用户名 */
//				'diaryname': function() { return $("#diarynameTxt").val();/* 用户名 */},
//				'realname': function() { return $("#realnameTxt").val();/*用户真实姓名*/},
//				'content': function() { return $("#contentTxt").val();/*用户组id*/},
//				'language': function() { return $("#languageBox").val();/*语言*/}
//			},
//			success: editNewDiarySucc,
//			error:editNewDiaryError
//		});
	});
	
	$("#editdiaryBtnCancel").click(function(event){
		event.preventDefault();
		closeTab(editDiaryPageTitle);
	});	
	
}

function editNewDiarySucc(json) {
	alert("edit success")
}

function editNewDiaryError() {
	alert("edit fail")
}